package api.purchase;

import com.github.pagehelper.PageInfo;
import dto.Dto;
import pojo.Xgzt;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import pojo.*;

import java.util.List;

public interface purchaseApi {

    //添加采购单
    @RequestMapping("addPo")
    Dto<Integer> addPo(@RequestBody Purchase purchase);
    //删除采购单
    @RequestMapping("delePo")
    Dto<Integer> delePo(@RequestParam("id") String id);
    //修改采购单
    @RequestMapping("updaPo")
    Dto<Integer> updaPo(@RequestBody PurchaseOrder purchaseOrder);
    //查询所有采购单单号
    @RequestMapping("showPid")
    Dto<List<String>> showPid();
    //修改采购单状态
    @RequestMapping("updaPo2")
    Dto<Integer> updaPo2(@RequestBody Xgzt xgzt);



    //分页查询采购单
    @RequestMapping("ListPo")
    Dto<PageInfo<PurchaseOrder>> ListPo(@RequestBody ListPo listPo);

    @RequestMapping("contPo")
    Dto<Integer> contPo();

    @RequestMapping("show1Po")
    Dto<PurchaseOrder> show1Po(@RequestParam("pid") String pid);


    /**
     * @param list
     *
     * @return
     * 采购清单模块
     */
    //添加订单清单
    @RequestMapping("addPl")
    Dto<Integer> addPl(@RequestBody List<PurchaseList> list);
    //添加订单清单2
    @RequestMapping("addPl2")
    Dto<Integer> addPl2(@RequestBody List<PurchaseList> list);
    //查看订单清单
    @RequestMapping("listPl")
    Dto<List> listPl(@RequestParam("pid") String pid);
    //删除采购清单
    @RequestMapping("delePl")
    Dto<Integer> delePl(@RequestParam("id") String id);
    //修改可退货数量
    @RequestMapping("updaPl")
    Dto<Integer> updaPl(@RequestBody List<Xgth> list);

    /**
     * @param pr
     * @return
     */
    //增加采购退货订单
    @RequestMapping("addPr")
    Dto<Integer> addPr(@RequestBody Pr pr);
    //删除采购退货订单
    @RequestMapping("delePr")
    Dto<Integer> delePr(@RequestParam("id") String id);
    //查询所有采购退货单
    @RequestMapping("listPr")
    Dto<PageInfo<PurchaseReturn>> listPr(@RequestBody ListPo listPo);
    //查看退货单总数
    @RequestMapping("contPr")
    Dto<Integer> contPr();
    @RequestMapping("showPr")
    Dto<PurchaseReturn> showPr(@RequestParam("code") String code);
    //修改采购退货单状态
    @RequestMapping("updaPr")
    Dto<Integer> updaPr(@RequestBody Xgzt xgzt);

    /**
     * @param supplier
     * 供应商模块
     * @return
     */
    //添加供应商
    @RequestMapping("addSp")
    Dto<Integer> addSp(@RequestBody Supplier supplier);
    //删除供应商
    @RequestMapping("deleSp")
    Dto<Integer> deleSp(@RequestParam("id") int id);
    //修改供应商信息
    @RequestMapping("updaSp")
    Dto<Integer> updaSp(@RequestBody Supplier supplier);
    //分页查询供应商
    @RequestMapping("listSp")
    Dto<PageInfo<Supplier>> listSp(@RequestParam("name") String name,@RequestParam("pageNum")int pageNum,@RequestParam("pageSize") int pageSize);
    //查询供应商总数
    @RequestMapping("contSp")
    Dto<Integer> contSp();
    //查询供应商名字
    @RequestMapping("nameSp")
    Dto<List<String>> nameSp();
    //根据id查询供应商
    @RequestMapping("showSp")
    Dto<Supplier> showSp(@RequestParam("id") Integer id);
    //根据name查询供应商
    @RequestMapping("showSp2")
    Dto<Supplier> showSp2(@RequestParam("name") String name);
}
